﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Collections;
using MySql.Data.MySqlClient;

namespace AutoStar
{
    public partial class NoviArtikl : Form
    {
        private Hashtable dobavljacHash=new Hashtable();

        public NoviArtikl()
        {
            InitializeComponent();
        }


        private void NoviArtikl_Load(object sender, EventArgs e)
        {
            textBox1.Focus();
            popuniComboBox();
        }


        private void popuniComboBox()
        {
            comboBox1.Items.Clear();
            comboBox2.Items.Clear();
            dobavljacHash.Clear();

            String[] jedinicaMjere = { "komad", "kilogram", "metar" };
            comboBox2.Items.AddRange(jedinicaMjere);
            comboBox2.SelectedIndex = 0;

            MySqlConnection conn = ConnectionPool.checkOutConnection();
            AutoStarBaza a1 = new AutoStarBaza(conn);
            var dob = from d in a1.dobavljac
                      orderby d.naziv ascending
                      select new 
                      {
                         Id=d.id,
                         Naziv=d.naziv
                      };
            foreach (var s in dob)
            {
                comboBox1.Items.Add(s.Naziv);
                dobavljacHash.Add(s.Naziv, s.Id);
            }
            //comboBox1.SelectedIndex = 0;
            
            ConnectionPool.checkInConnection(conn);
        }


        //dugme sacuvaj artikl
        private void button2_Click(object sender, System.EventArgs e)
        {
            sacuvajArtikl();
            this.Close();
        }


        private void sacuvajArtikl() 
        {

            MySqlConnection conn = ConnectionPool.checkOutConnection();
            AutoStarBaza a1 = new AutoStarBaza(conn);

            //dummy artikl za id
            artikl dummy = new artikl();
            dummy.naziv = "dummy";
            dummy.proizvodjac = "dummy";
            dummy.jedinicaMjere = "dummy";
            dummy.kolicinaNaStanju = 1;
            dummy.trigerNarudzbe = 1;
            dummy.kolicinaZaNabavku = 1;
            dummy.rabat = 1;
            dummy.marza = 1;
            dummy.stopaPDV = 1;
            dummy.narucen = 0;
            dummy.dobavljacid = 1;
            a1.artikl.InsertOnSubmit(dummy);
            a1.SubmitChanges();

            //sad iscitaj dummy-jev id
            var dum = (from d in a1.artikl
                       where d.naziv == "dummy" && d.proizvodjac == "dummy" && d.jedinicaMjere=="dummy"
                       select d).Single();
            
            //popuni podatke arikla
            dum.naziv = textBox1.Text;
            dum.proizvodjac = textBox2.Text;
            dum.jedinicaMjere = comboBox2.SelectedItem.ToString();
            dum.kolicinaNaStanju = Convert.ToDecimal(textBox4.Text);
            dum.trigerNarudzbe = Convert.ToDecimal(textBox5.Text);
            dum.kolicinaZaNabavku = Convert.ToDecimal(textBox6.Text);
            dum.rabat = Convert.ToDecimal(textBox7.Text);
            dum.marza = Convert.ToDecimal(textBox8.Text);
            dum.stopaPDV = Convert.ToDecimal(textBox9.Text);
            dum.narucen = 0;
            dum.dobavljacid = Convert.ToInt32(dobavljacHash[comboBox1.Text]);     //iz hashseta dobijem id
            a1.SubmitChanges();

            //formiram cijenu
            artiklcijena ac = new artiklcijena();
            decimal nabavna=Convert.ToDecimal(textBox10.Text);
            if(Convert.ToDecimal(textBox7.Text)>0) //ako ima rabat
            {
                nabavna=nabavna-(nabavna*(Convert.ToDecimal(textBox7.Text)/100));
            }
            decimal saMarzom = nabavna + (nabavna * (dum.marza/100));
            decimal konacna = saMarzom + (saMarzom * (dum.stopaPDV / 100));
            ac.cijena = konacna;
            ac.datumod = DateTime.Parse(DateTime.Now.ToString());
            ac.artiklid = dum.id;
            a1.artiklcijena.InsertOnSubmit(ac);
            a1.SubmitChanges();

            ConnectionPool.checkInConnection(conn);
        }


        //dugme novi dobavljac
        private void button1_Click(object sender, EventArgs e)
        {
            NoviDobavljac nd = new NoviDobavljac();
            nd.ShowDialog();
            popuniComboBox();
        }



        //dugme sacuvaj i dodaj novi
        private void button4_Click(object sender, EventArgs e)
        {
            sacuvajArtikl();

            textBox1.Text = "";
            textBox2.Text = "";
            textBox4.Text = "";
            textBox5.Text = "";
            textBox6.Text = "";
            textBox7.Text = "";
            textBox8.Text = "";
            textBox9.Text = "";
            textBox10.Text = "";
        }
    }
}